//
//  Extension+NSDate.swift
//  SHWeibo3
//
//  Created by 余伟康 on 16/7/27.
//  Copyright © 2016年 wangce. All rights reserved.
//

import UIKit

private let df = NSDateFormatter()

// 日历类
private let calendar = NSCalendar.currentCalendar()

extension NSDate {
    
    // 获取微博日期
    class func sinaDate(createAt:String)->NSDate? {
        // 设置locate 指定地区 如果不指定 在真机中时间会有问题
        df.locale = NSLocale(localeIdentifier: "en_US")
        // 指定格式
        df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        return df.dateFromString(createAt)
    }
    
    // 获取微博时间字符串
    var sinaDescripitionStr:String {
        // 定义一个属性 来判断是否是今年
        let isThisYear = sinaIsThisYear(self)
        
        if isThisYear {
            // 是今年
            if calendar.isDateInToday(self){
                // 是今天
                let s = Int(NSDate().timeIntervalSinceDate(self))
                if s < 60 {
                    return "刚刚"
                }else if s >= 60 && s < 3600{
                    return "\(s/60)分钟前"
                }else {
                    return "\(s/3600)小时前"
                }
            }else if calendar.isDateInYesterday(self){
                // 是昨天
                df.dateFormat = "昨天 HH:mm"
            }else{
                // 其他
                df.dateFormat = "MM月dd日 HH:mm"
            }
            
        }else{
            // 不是今年
            df.dateFormat = "yyyy年MM月dd日 HH:mm"
        }
        
        
        return df.stringFromDate(self)
    }
    
    
    // 判断微博时间是否是今年
    func sinaIsThisYear(sinaDate:NSDate) ->Bool{
        // 设置locate指定地区 如果不指定 在真机中时间会有问题
        df.locale = NSLocale(localeIdentifier: "en_US")
        // 指定时间格式
        df.dateFormat = "yyyy"
        // 获取当前的日期
        let currentDate = NSDate()
        // 微博日期字符串
        let sinaStr = df.stringFromDate(sinaDate)
        // 当前日期字符串
        let currentStr = df.stringFromDate(currentDate)
        return sinaStr == currentStr
    }
}

